package com.ck.javacode.Chapter6;

/**
 * @author: caoke
 * @date: 2021/10/8 22:28
 * @description:杨辉三角
 */
public class D10_YangHui {
    public static void main(String[] args) {
        /*
        使用二维数组打印一个10行的杨辉三角
          1
          1 1
          1 2 1
          1 3 3 1
          1 4 6 4 1
          1 5 10 10 5 1
          提示：
          1、第1行有1个元素，第n行有n个元素
          2、每一行的第一个和最后一个元素都是1
          3、从第三行开始，对于非第一个元素和最后一个元素的值： arr[i][j]
          arr[i][j] = arr[i-1][j]+arr[i-1][j-1]
         */
        int[][] yanghui = new int[10][];
        for (int i = 0; i< yanghui.length; i++){//遍历每个元素
            //给每个一维数组（行）开空间
            yanghui[i] = new int[i+1];
            //给每个一维数组（行）赋值
            for (int j=0;j<yanghui[i].length;j++){
                //每一行的第一个元素和最后一个元素都是1
                if (j == 0||j == yanghui[i].length-1){
                    yanghui[i][j] = 1;
                }else {//中间的元素
                    yanghui[i][j] = yanghui[i-1][j]+yanghui[i-1][j-1];
                }

            }
        }

        //输出二维数组
        for (int i =0; i<yanghui.length;i++){
            for (int j =0;j<yanghui[i].length;j++){
                System.out.print(yanghui[i][j]+" ");
            }
            System.out.println();//换行
        }

    }
}
